#ifndef _ascendancy_planet_
#define _ascendancy_planet_

#include <iostream>
#include <vector>

#define PLANET_SIZE_GIANT	1
#define PLANET_SIZE_LARGE	2
#define PLANET_SIZE_MEDIUM	3
#define	PLANET_SIZE_SMALL	4
#define	PLANET_SIZE_TINY	5
#define PLANET_SIZE_SIZE	5

#define PLANET_TYPE_PLUTO	1 // dead planet
#define PLANET_TYPE_MARS	2 // industrial planet
#define PLANET_TYPE_EARTH	3 // oasis like planet
#define PLANET_TYPE_NEPTUNE	4 // science planet 
#define PLANET_TYPE_VENUS	5 // bio planet
#define PLANET_TYPE_JUPITER	6 // random with indus
#define PLANET_TYPE_SATURN	7 // random with bio
#define PLANET_TYPE_MERCURY	8 // random
#define PLANET_TYPE_URANUS	9 // random science
#define PLANET_TYPE_CALYSTO	10 // dead planet
#define PLANET_TYPE_EUROPA	11 // random bio
#define PLANET_TYPE_IO		12 // random indus
#define PLANET_TYPE_CLOUD	13 // random science
#define PLANET_TYPE_VENUS2	14 // random
#define PLANET_TYPE_SIZE	14

#define PLANET_HAS_NO_RING	0
#define PLANET_HAS_RING		1

#define PLANET_TERRAN_SCIENCE	1 // science square
#define PLANET_TERRAN_INDUS	2 // industrial square
#define PLANET_TERRAN_BIO	3 // bio square
#define PLANET_TERRAN_DEAD	4 // black dead square

class		Planet
{

public:

  Planet();
  ~Planet();

  void		setCoords(int x, int y, int z);
  void		setName(std::string name);
  void		setSize(int size);
  void		setType(int type);
  void		setSolSysId(int solSysId);

  std::string	getName();
  int		getSize();
  int		getX();
  int		getY();
  int		getZ();
  int		getType();
  int		getSolSysId();

private:

  std::string	name;
  int		x;
  int		y;
  int		z;
  int		size;
  int		type;
  int		solSysId; // id of the solar system

  std::vector<int> resSquares; // ressources squares of the planet

};

#endif
